package ssm.integration.config;

import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;

/**
 * description: Spring容器初始化配置类
 * TODO：两个IOC容器、DispatcherServlet拦截路径
 *
 * 1. 继承 AbstractAnnotationConfigDispatcherServletInitializer
 * 2. 重写方法 getRootConfigClasses() 返回 rootIoC 容器的配置类（服务层、持久层）
 * 3. 重写方法 getServletConfigClasses() 返回 webIoC 容器的配置类（表述层）
 * 4. 重写方法 getServletMappings() 返回 DispatcherServlet 的拦截路径
 */
public class SpringIoCInit extends AbstractAnnotationConfigDispatcherServletInitializer {

    //rootioc容器的配置类
    @Override
    protected Class<?>[] getRootConfigClasses() {
        return new Class[]{DataSourceJavaConfig.class, MapperJavaConfigNew.class, ServiceJavaConfig.class};
    }

    //webioc容器的配置类指定
    @Override
    protected Class<?>[] getServletConfigClasses() {
        return new Class[]{WebMvcJavaConfig.class};
    }

    //dispatcherServlet的拦截路径
    @Override
    protected String[] getServletMappings() {
        return new String[]{"/"};
    }
}
